package com.love.marriage.userMembershipInfo.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.love.marriage.orderInfo.vo.OrderInfoVo;
import com.love.marriage.userMembershipInfo.entity.UserMembershipInfo;
import com.love.marriage.userMembershipInfo.vo.UserMembershipInfoPageVo;
import com.love.marriage.userMembershipInfo.vo.UserMembershipInfoVo;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 用户会员表 服务类
 * author: mybatisPlus
 * createDate: 2024-10-17 07:29:59
 * description: 我是由代码生成器生成
 * version: 1.0.0
 */
public interface UserMembershipInfoService extends IService<UserMembershipInfo> {

    Page<UserMembershipInfoPageVo> getPage(Long pageNum, Long pageSize, UserMembershipInfoVo userMembershipInfoVo);

    /**
     * @param userMembershipInfoVo
     * @description: 查询当前有效的会员列表
     * @author:      alex
     * @return:      java.util.List<com.love.marriage.userMembershipInfo.vo.UserMembershipInfoPageVo>
    */
    List<UserMembershipInfoPageVo> getList(UserMembershipInfoVo userMembershipInfoVo);

    UserMembershipInfoVo queryUserMembershipInfo(Long id);

    UserMembershipInfoVo queryUserMembershipInfoByUserId(Long userId);

    UserMembershipInfoVo membershipBack(OrderInfoVo orderInfoVo) throws Exception;

    UserMembershipInfoVo addUserMembershipInfoAdmin(UserMembershipInfoVo userMembershipInfoVo);

    UserMembershipInfoVo addUserMembershipInfo(UserMembershipInfoVo userMembershipInfoVo);

    UserMembershipInfoVo updateUserMembershipInfo(UserMembershipInfoVo userMembershipInfoVo);

    Boolean deleteUserMembershipInfo(String ids);

    /**
     * 导出会员信息Excel
     * @param userMembershipInfoVo 查询条件
     * @param response HTTP响应
     * @throws Exception 异常
     */
    void exportUserMembershipInfo(UserMembershipInfoVo userMembershipInfoVo, HttpServletResponse response) throws Exception;
}
